package ${prefixPackage}.service;

<#if !isSimple>
import ${prefixPackage}.beans.vo.${javaNameBig}Vo;
import ${prefixPackage}.beans.entity.${javaNameBig};
import ${prefixPackage}.beans.request.${javaNameBig}AddRequest;
import ${prefixPackage}.beans.request.${javaNameBig}EditRequest;
import ${prefixPackage}.beans.request.${javaNameBig}ListRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
</#if>
<#if isSimple>
import ${prefixPackage}.beans.entity.${javaNameBig};
import com.baomidou.mybatisplus.extension.service.IService;
</#if>

/**
 * ${tbDesc}Service层
 *
 * @author ${author}
 * @date ${date}
 */
public interface ${javaNameBig}Service extends IService<${javaNameBig}> {
<#if !isSimple>
    /**
     * 逻辑删除
     *
     * @param id 待删除的id
     * @return
     */
    void removeByIdLogic(Long id);

    /**
     * 分页查询
     *
     * @param param 分页查询的参数
     * @return ${tbDesc}列表
     */
    IPage<${javaNameBig}Vo> listWithPage(${javaNameBig}ListRequest param);

    /***
     * 根据id查询DTO
     * @param id
     * @return
     */
    ${javaNameBig}Vo getDTO(Long id);


    /**
     * 添加${tbDesc}
     * @param addRequest
     */
    Long add${javaNameBig}(${javaNameBig}AddRequest addRequest);

    /**
     * 修改${tbDesc}
     * @param editRequest
     * @param
     * @return
     */
    void edit${javaNameBig}(${javaNameBig}EditRequest editRequest);
</#if>
}